/**
 * LuckDog工具库 - 快速入门示例 (ESM版本)
 * 
 * 此文件演示了LuckDog工具库在 Node.js ES 模块环境下的使用方式
 */

// 此处使用 ES 模块的动态导入
// 注意：在实际使用时，请替换为 'luckdog'

// 方式1: 动态导入并按需提取函数
const luckdogModule = await import('../dist/luckdog.esm.js');
const { strUtil, arrUtil, validUtil } = luckdogModule;

console.log('------ 字符串工具演示 ------');
const longText = '这是一个很长的文本，需要被截断';
console.log(`原始文本: ${longText}`);
console.log(`截断后(10字符): ${strUtil.truncate(longText, 10)}`);
console.log(`截断后(5字符，自定义后缀): ${strUtil.truncate(longText, 5, '...')}`);
console.log(`字符串是否为空: ${strUtil.hasBlank('')}`);
console.log(`多个字符串是否有空: ${strUtil.hasBlank('hello', 'world', '')}`);

console.log('\n------ 数组工具演示 ------');
const duplicatedArray = [1, 2, 2, 3, 3, 4, 5, 5];
console.log(`原始数组: ${duplicatedArray}`);
console.log(`去重后: ${arrUtil.unique(duplicatedArray)}`);
console.log(`随机元素: ${arrUtil.random(duplicatedArray)}`);

console.log('\n------ 验证工具演示 ------');
const emails = ['test@example.com', 'invalid-email', 'another@domain.com'];
emails.forEach(email => {
  console.log(`"${email}" 是否为有效邮箱: ${validUtil.isValidEmail(email)}`);
});

// 显示完成信息，确保全部输出可见
console.log('\n------ 示例运行完成 ------');

// 方式2: 导入特定分类的全部工具函数（需要库支持）
/*
const { strUtil } = await import('luckdog/dist/utils/strutil.js');
const { arrUtil } = await import('luckdog/dist/utils/arrutil.js');
const { validUtil } = await import('luckdog/dist/utils/validutil.js');

const shortText = strUtil.truncate('这是一个很长的文本', 5);
const uniqueArr = arrUtil.unique([1, 2, 2, 3]);
const isValid = validUtil.isValidEmail('test@example.com');
*/

// 方式3: 导入所有工具函数
/*
const LuckDog = await import('luckdog');

const shortText = LuckDog.strUtil.truncate('这是一个很长的文本', 5);
const uniqueArr = LuckDog.arrUtil.unique([1, 2, 2, 3]);
const isValid = LuckDog.validUtil.isValidEmail('test@example.com');
*/ 